The present invention relates generally to computer vision systems and digital image processing, and more particularly to the digital extraction of an image from its background.
To produce certain special visual effects, it is often desirable to separate a foreground image from a background image. One method for accomplishing this task is referred to as “blue-screening” and involves placing a blue or other fixed-color screen (e.g. a green screen) behind the desired foreground object, typically the image of a person (the colors blue and green hue that strongly contrasts with most colors of human skin). In blue-screening, the system checks to see which pixels in the input image are not blue and labels those pixels as foreground pixels. The system can then composite, or blend, the object (i.e. the collection of all foreground pixels) onto a destination background image.
One of the disadvantages of using blue-screening for object compositing is that it requires a fixed color screen behind the object. Another disadvantage is that if any of the colors on the object, such as an item of clothing, are blue, “holes” will appear in the object in the destination image. This occurs because the pixels in the blue areas on the object will not be labeled as foreground pixels and thus will not be composited with the rest of the object, resulting in the object having holes when composited onto the destination image. Another disadvantage is, obviously, the need for a special room or screen to provide the appropriate background color.
Other prior art background subtraction procedures, from the field of computer vision, are used to eliminate the fixed color screen requirement. One procedure involves building an average background image by taking a predetermined number of sample images of a typically multi-colored background and creating a background model. For each new sample image taken, each pixel in the new image is compared to its corresponding pixel in the background model being formed. Changes are assumed to be to the foreground object, i.e. this is done to determine whether the pixel in the current sample image is a foreground (“object”). Pixels that are determined to be part of the foreground are then blended or composited onto the destination image.
One disadvantage with this procedure is if a foreground pixel happens to match its corresponding background model pixel color, it will not be considered a foreground pixel. This will introduce holes into the composited object. Another disadvantage is that shadows cast by the object often make the object, when composited, appear to have its original form plus extraneous appendages (as a result of the shadows). This is because the procedure may mistakenly label the “shadow” pixels as foreground pixels.
Yet another disadvantage is that if any portion of the background changes or if the camera is moved while the background model is being built, certain portions of the background (e.g. the portions that moved) will be incorrectly labeled as part of the foreground and be composited onto the destination image. Although there are prior art techniques for updating the background model to reflect changes, they cannot account for a constantly changing background such as one that includes a changing television screen or a window looking out onto a busy street.
As is apparent from the foregoing discussion, it has been difficult to obtain a clean-edged outline for a foreground image being extracted from a background image. One known method of creating a clean-edged outline is hand painting the outline for the background subtraction which is typically done by an application developer. While this is appropriate in the application design stage, it is not appropriate for an end user to have to hand paint or manually create the outline of the image.